package com.lin.carbon.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lin.carbon.entity.SysDictItem;
import com.lin.carbon.entity.SysDictItemVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;
import java.util.Map;

/**
 * 系统字典条目业务接口
 */
public interface SysDictItemService extends IService<SysDictItem> {

    /**
     * 分页查询系统字典条目（含字典名称）
     */
    Page<SysDictItemVO> getAllDictItems(int pageNum, int pageSize);

    /**
     * 根据ID查询字典条目（含字典名称）
     */
    SysDictItemVO getDictItemById(Long id);

    /**
     * 根据字典编码查询字典项的字典编码和中文描述
     */
    List<Map<String, Object>> selectNameListByDictCode(String dictCode);

    /**
     * 通过 dictCode 获取系统字典配置的分页列表（子集字典 sys_dict_item）
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @param dictCode 字典编码
     * @return 分页后的字典项列表
     */
    Page<SysDictItemVO> getDictItemPageListByDictCode(Integer pageNum, Integer pageSize, String dictCode);

    /**
     * 添加系统字典条目
     * @param sysDictItemVO 系统字典条目对象
     * @return 操作成功返回 true，失败返回 false
     */
    boolean addDictItem(SysDictItemVO sysDictItemVO);

    /**
     * 修改系统字典条目
     * @param sysDictItemVO 包含修改信息的系统字典条目对象
     * @return 操作成功返回 true，失败返回 false
     */
    boolean updateDictItem(SysDictItemVO sysDictItemVO);

    boolean deleteDictItemById(Long id);

    List<SysDictItemVO> getCityDict();

    List<SysDictItemVO> getFieldDict();
}